home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Visual Basic Source Code
/
Visual Basic Source Code.iso
/
vbsource
/
optivc32
/
vfmath.h
< prev
next >
Wrap
C/C++ Source or Header
|
1999-03-06
|
25KB
|
465 lines
/* VFmath.h
vector management functions:
math functions performed on each individual element of an
array or vector of the data type "float"; real numbers
Copyright (c) 1996-1999 by Martin Sander
All Rights Reserved.
*/
#ifndef __VFMATH_H
#define __VFMATH_H
#ifndef __VFSTD_H
#include <VFstd.h>
#endif
#ifdef __cplusplus
extern "C" {
#endif
/************************** Rounding **********************************/
int __vf VF_round( fVector Y, fVector X, ui size );
int __vf VF_roundtoBI( biVector Y, fVector X, ui size );
int __vf VF_roundtoSI( siVector Y, fVector X, ui size );
int __vf VF_roundtoI( iVector Y, fVector X, ui size );
int __vf VF_roundtoLI( liVector Y, fVector X, ui size );
int __vf VF_roundtoQI( qiVector Y, fVector X, ui size );
int __vf VF_roundtoUB( ubVector Y, fVector X, ui size );
int __vf VF_roundtoUS( usVector Y, fVector X, ui size );
int __vf VF_roundtoU( uVector Y, fVector X, ui size );
int __vf VF_roundtoUL( ulVector Y, fVector X, ui size );
int __vf VF_floor( fVector Y, fVector X, ui size );
int __vf VF_floortoBI( biVector Y, fVector X, ui size );
int __vf VF_floortoSI( siVector Y, fVector X, ui size );
int __vf VF_floortoI( iVector Y, fVector X, ui size );
int __vf VF_floortoLI( liVector Y, fVector X, ui size );
int __vf VF_floortoQI( qiVector Y, fVector X, ui size );
int __vf VF_floortoUB( ubVector Y, fVector X, ui size );
int __vf VF_floortoUS( usVector Y, fVector X, ui size );
int __vf VF_floortoU( uVector Y, fVector X, ui size );
int __vf VF_floortoUL( ulVector Y, fVector X, ui size );
int __vf VF_ceil( fVector Y, fVector X, ui size );
int __vf VF_ceiltoBI( biVector Y, fVector X, ui size );
int __vf VF_ceiltoSI( siVector Y, fVector X, ui size );
int __vf VF_ceiltoI( iVector Y, fVector X, ui size );
int __vf VF_ceiltoLI( liVector Y, fVector X, ui size );
int __vf VF_ceiltoQI( qiVector Y, fVector X, ui size );
int __vf VF_ceiltoUB( ubVector Y, fVector X, ui size );
int __vf VF_ceiltoUS( usVector Y, fVector X, ui size );
int __vf VF_ceiltoU( uVector Y, fVector X, ui size );
int __vf VF_ceiltoUL( ulVector Y, fVector X, ui size );
int __vf VF_chop( fVector Y, fVector X, ui size );
int __vf VF_choptoBI( biVector Y, fVector X, ui size );
int __vf VF_choptoSI( siVector Y, fVector X, ui size );
int __vf VF_choptoI( iVector Y, fVector X, ui size );
int __vf VF_choptoLI( liVector Y, fVector X, ui size );
int __vf VF_choptoQI( qiVector Y, fVector X, ui size );
int __vf VF_choptoUB( ubVector Y, fVector X, ui size );
int __vf VF_choptoUS( usVector Y, fVector X, ui size );
int __vf VF_choptoU( uVector Y, fVector X, ui size );
int __vf VF_choptoUL( ulVector Y, fVector X, ui size );
#define VF_trunc VF_chop
#define VF_trunctoBI VF_choptoBI
#define VF_trunctoSI VF_choptoSI
#define VF_trunctoI VF_choptoI
#define VF_trunctoLI VF_choptoLI
#define VF_trunctoQI VF_choptoQI
#define VF_trunctoUB VF_choptoUB
#define VF_trunctoUS VF_choptoUS
#define VF_trunctoU VF_choptoU
#define VF_trunctoUL VF_choptoUL
#if defined V_HUGE
#define VF_roundtoUI VF_roundtoUL
#define VF_floortoUI VF_floortoUL
#define VF_ceiltoUI VF_ceiltoUL
#define VF_choptoUI VF_choptoUL
#define VF_trunctoUI VF_trunctoUL
#else
#define VF_roundtoUI VF_roundtoU
#define VF_floortoUI VF_floortoU
#define VF_ceiltoUI VF_ceiltoU
#define VF_choptoUI VF_choptoU
#define VF_trunctoUI VF_trunctoU
#endif
/******************** Comparisons ********************************/
void __vf VF_cmp0( fVector Y, fVector X, ui size );
ui __vf VF_cmp_eq0( fVector Y, fVector X, ui size );
ui __vf VF_cmp_ne0( fVector Y, fVector X, ui size );
ui __vf VF_cmp_le0( fVector Y, fVector X, ui size );
ui __vf VF_cmp_lt0( fVector Y, fVector X, ui size );
ui __vf VF_cmp_ge0( fVector Y, fVector X, ui size );
ui __vf VF_cmp_gt0( fVector Y, fVector X, ui size );
ui __vf VF_cmp_eq0ind( uiVector Ind, fVector X, ui size );
ui __vf VF_cmp_ne0ind( uiVector Ind, fVector X, ui size );
ui __vf VF_cmp_le0ind( uiVector Ind, fVector X, ui size );
ui __vf VF_cmp_lt0ind( uiVector Ind, fVector X, ui size );
ui __vf VF_cmp_ge0ind( uiVector Ind, fVector X, ui size );
ui __vf VF_cmp_gt0ind( uiVector Ind, fVector X, ui size );
void __vf VF_cmpC( fVector Y, fVector X, ui size, float C );
ui __vf VF_cmp_eqC( fVector Y, fVector X, ui size, float C );
ui __vf VF_cmp_neC( fVector Y, fVector X, ui size, float C );
ui __vf VF_cmp_leC( fVector Y, fVector X, ui size, float C );
ui __vf VF_cmp_ltC( fVector Y, fVector X, ui size, float C );
ui __vf VF_cmp_geC( fVector Y, fVector X, ui size, float C );
ui __vf VF_cmp_gtC( fVector Y, fVector X, ui size, float C );
ui __vf VF_cmp_eqCind( uiVector Ind, fVector X, ui size, float C );
ui __vf VF_cmp_neCind( uiVector Ind, fVector X, ui size, float C );
ui __vf VF_cmp_leCind( uiVector Ind, fVector X, ui size, float C );
ui __vf VF_cmp_ltCind( uiVector Ind, fVector X, ui size, float C );
ui __vf VF_cmp_geCind( uiVector Ind, fVector X, ui size, float C );
ui __vf VF_cmp_gtCind( uiVector Ind, fVector X, ui size, float C );
void __vf VF_cmpV( fVector Z, fVector X, fVector Y, ui size );
ui __vf VF_cmp_eqV( fVector Z, fVector X, fVector Y, ui size );
ui __vf VF_cmp_neV( fVector Z, fVector X, fVector Y, ui size );
ui __vf VF_cmp_leV( fVector Z, fVector X, fVector Y, ui size );
ui __vf VF_cmp_ltV( fVector Z, fVector X, fVector Y, ui size );
ui __vf VF_cmp_geV( fVector Z, fVector X, fVector Y, ui size );
ui __vf VF_cmp_gtV( fVector Z, fVector X, fVector Y, ui size );
ui __vf VF_cmp_eqVind( uiVector Ind, fVector X, fVector Y, ui size );
ui __vf VF_cmp_neVind( uiVector Ind, fVector X, fVector Y, ui size );
ui __vf VF_cmp_leVind( uiVector Ind, fVector X, fVector Y, ui size );
ui __vf VF_cmp_ltVind( uiVector Ind, fVector X, fVector Y, ui size );
ui __vf VF_cmp_geVind( uiVector Ind, fVector X, fVector Y, ui size );
ui __vf VF_cmp_gtVind( uiVector Ind, fVector X, fVector Y, ui size );
ui __vf VF_cmp_inclrange0C( fVector Y, fVector X, ui size, float C );
ui __vf VF_cmp_exclrange0C( fVector Y, fVector X, ui size, float C );
ui __vf VF_cmp_inclrangeCC( fVector Y, fVector X, ui size, float CLo, float CHi );
ui __vf VF_cmp_exclrangeCC( fVector Y, fVector X, ui size, float CLo, float CHi );
ui __vf VF_cmp_inclrange0Cind( uiVector Ind, fVector X, ui size, float C );
ui __vf VF_cmp_exclrange0Cind( uiVector Ind, fVector X, ui size, float C );
ui __vf VF_cmp_inclrangeCCind( uiVector Ind, fVector X, ui size, float CLo, float CHi );
ui __vf VF_cmp_exclrangeCCind( uiVector Ind, fVector X, ui size, float CLo, float CHi );
/******************** Standard Arithmetics ***************************/
void __vf VF_equC( fVector X, ui size, float C );
void __vf VF_equV( fVector Y, fVector X, ui size );
void __vf VFx_equV( fVector Y, fVector X, ui size, float A, float B );
void __vf VF_addC( fVector Y, fVector X, ui size, float C );
void __vf VF_subC( fVector Y, fVector X, ui size, float C );
void __vf VF_subrC( fVector Y, fVector X, ui size, float C );
void __vf VF_mulC( fVector Y, fVector X, ui size, float C );
void __vf VF_divC( fVector Y, fVector X, ui size, float C );
void __vf VF_divrC( fVector Y, fVector X, ui size, float C );
void __vf VFx_divrC( fVector Y, fVector X, ui size, float A, float B, float C );
void __vf VF_addV( fVector Z, fVector X, fVector Y, ui size );
void __vf VF_subV( fVector Z, fVector X, fVector Y, ui size );
void __vf VF_subrV( fVector Z, fVector X, fVector Y, ui size );
void __vf VF_mulV( fVector Z, fVector X, fVector Y, ui size );
void __vf VF_divV( fVector Z, fVector X, fVector Y, ui size );
void __vf